package com.pxye;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

/**
 * @Title: App
 * @Mail: yepx2013@gmail.com
 * @Author: Yepx
 * @Description: 启动类
 */
@SpringBootApplication
public class App /*extends WebMvcConfigurerAdapter*/{
   
//	public void configuerMessgeConverters(List<HttpMessageConverter<?>> converters){
//		super.configureMessageConverters(converters);
//		
//		/**
//		 * 1.需要先定义个 Converter 转换消息的对象
//		 * 2.添加FastJson 的配置信息，如：是否要格式化返回的json数据
//		 * 3.在Converter中添加配置信息
//		 * 4.将Converter添加到 Converters中
//		 */
//		//1.需要先定义个 Converter 转换消息的对象
//		FastJsonHttpMessageConverter faseConverter = new FastJsonHttpMessageConverter();
//		//2.添加FastJson 的配置信息，如：是否要格式化返回的json数据
//		FastJsonConfig fastJsonConfig = new FastJsonConfig();
//		fastJsonConfig.setSerializerFeatures(
//            SerializerFeature.PrettyFormat           
//		);
//		//3.在Converter中添加配置信息
//       faseConverter.setFastJsonConfig(fastJsonConfig);
//	    //4.将Converter添加到 Converters中
//	   converters.add(faseConverter);
//	}
	
	@Bean
    public HttpMessageConverters fastJsonMessageConverters(){
		/**
		 * 1.需要先定义个 Converter 转换消息的对象
		 * 2.添加FastJson 的配置信息，如：是否要格式化返回的json数据
		 * 3.在Converter中添加配置信息
		 * 4.将Converter添加到 Converters中
		 */
		//1.需要先定义个 Converter 转换消息的对象
		FastJsonHttpMessageConverter faseConverter = new FastJsonHttpMessageConverter();
		//2.添加FastJson 的配置信息，如：是否要格式化返回的json数据
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
		//3.在Converter中添加配置信息
        faseConverter.setFastJsonConfig(fastJsonConfig);
        
        
        HttpMessageConverter<?> converter = faseConverter;
	    return new HttpMessageConverters(converter);
    }
	public static void main(String[] args){
		
		/**
		 * 在main方法中 启动 Spring-boot
		 */
		SpringApplication.run(App.class, args);
	}
}
